var Log = require('log')
, log = new Log('info');

var express = require('express'),
app = express()
, http = require('http')
, server = http.createServer(app)
, socket = require('socket.io');

//var Jeu = require('./libs/jeu.js');
//var Jeufille = require('./libs/jeu_fille.js');

//var Joueur = require('./libs/joueur.js');
//var Carte_Personnage = require('./libs/carte_Personnage.js');
//var Voleur = require('./libs/voleur.js');
//
//var vol = new Voleur();
//var perso = new Carte_Personnage('bidon');
//vol.vole(perso);

app.get('/',function(req,res){
	log.info('Dans le pattern /');
	res.render('html/index.ejs',{param : 'je suis le param!!!'});
});

//var jeu = new Jeu("jeu1");
//var jeu2 = new Jeu("jeu2");
//jeu.getVar();
//jeu2.getVar();
//jeu.setVar("jeu1_new");
//jeu2.setVar("jeu2_new");
//jeu.getVar();
//jeu2.getVar();

//var jeufille=new Jeufille('test');
//jeufille.getVar();
//jeufille.autre_function();

//var joueur = new Joueur("Laurent");
//joueur.toString();
//joueur.addCarte("Bonjour");
//joueur.toString();
//log.info("Carte : "+joueur.getCarte(0));
/*http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  log.info('test');
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');*/

//var joueur = new Joueur("Laurent");
//joueur.addOr(4);
//var carte = new Carte_Personnage("Voleur");
//carte.setJoueur(joueur);
//carte.vole();

app.use(function(req,res){
	log.error('Tentative d\'intrusion vers une autre page');
	res.writeHead(404, {'Content-Type': 'text/plain'});
	res.end('Pas le droit');
});

server.listen(1337);

var listener = socket.listen(server, {log: true});

var joueur_socket = {};
var socket_joueur = {};


function start(socket){
	socket.on('connectGame', function(str_joueurName){
		console.log(str_joueurName+' is joining the game');
		if(str_joueurName in joueur_socket )
			socket.emit('notification', 'Impossible d\'utiliser ce pseudo');
		else{
			socket.emit('notification', 'Vous etes identifier comme '+str_joueurName);
			for(str_joueur in joueur_socket){
				joueur_socket[str_joueur].emit('notification', 'Nouveau Joueur '+str_joueurName);
				socket.emit('notification', str_joueur+' est d&eacute;j&agrave; dans la partie');
			}
			joueur_socket[str_joueurName]=socket;
			socket_joueur[socket.id]=str_joueurName;
		}
		
	});
	
	socket.on('choisirCartePerso', function(str_cartePersoName){
		console.log('carte '+str_cartePersoName+' jouer par '+socket_joueur[socket.id]);
		socket.emit('notification', 'Vous avez choisi la carte '+str_cartePersoName);
		for(str_joueur in joueur_socket){
			if(str_joueur != socket_joueur[socket.id]){
				joueur_socket[str_joueur].emit('notification', socket_joueur[socket.id]+' a choisi la carte '+str_cartePersoName);
			}
		}
		
	});
}




listener.sockets.on('connection',function(socket){start(socket);});

console.log('Server running at http://127.0.0.1:1337/');
